/*!
    \copyright Copyright (c) 2024 Qualcomm Technologies International, Ltd.
    \version %version
    \file
    \ingroup   adk_test_common
    \brief     Creates tables of marshal type descriptors for spps test loopback application
    @{
*/

#ifndef SPPS_TEST_MARSHAL_DESC_H
#define SPPS_TEST_MARSHAL_DESC_H

#ifdef INCLUDE_SPPS_LOOPBACK_TEST

#include <message.h>
#include "spps_test_private_data.h"
#include "marshal_common_desc.h"

/* Data struture to be marshalled/unmarshalled by SPP test loopback application */
typedef struct
{
    uint16                  spp_connection_id[spp_max_instances];
} spp_test_marshal_data_t;

#define SPP_TEST_MARSHAL_TYPES_TABLE(ENTRY) \
    ENTRY(spp_test_marshal_data_t)

/* Use xmacro to expand type table as enumeration of marshal types */
#define EXPAND_AS_ENUMERATION(type) MARSHAL_TYPE(type),
enum
{
    COMMON_MARSHAL_TYPES_TABLE(EXPAND_AS_ENUMERATION)
    COMMON_DYN_MARSHAL_TYPES_TABLE(EXPAND_AS_ENUMERATION)
    SPP_TEST_MARSHAL_TYPES_TABLE(EXPAND_AS_ENUMERATION)
    SPP_TEST_MARSHAL_OBJ_TYPE_COUNT
};
#undef EXPAND_AS_ENUMERATION

extern const marshal_type_descriptor_t * const  mtd_spp_test[];

#endif // INCLUDE_SPPS_LOOPBACK_TEST
#endif // SPPS_TEST_MARSHAL_DESC_H
